package com.jason.system.service;

import com.jason.system.common.util.Pager;
import com.jason.system.entity.Student;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author jie
 * @version 1.0
 * success come from self-discipline
 * @date 2021/3/25 15:30
 */
public interface StudentService {

  /**
   * 获取所有学生信息
   * @param size 一页多少个
   * @param page 页数
   * @return List<Student>
   */
  Pager<Student> getAllStudent(Integer page, Integer size);

  /**
   * 根据学生专业和年级查询学生信息
   * @param page 页数
   * @param size 每页个数
   * @param grade 年级
   * @param major 专业
   * @return pager<Student>
   */
  Pager<Student> searchStudents(Integer page,Integer size,String grade,String major);

  /**
   * 获取所有学生信息
   * @return List<Student>
   */
  List<Student> getAllStudent();

  /**
   * 通过学号获取学生信息
   * @param stuNo 学号
   * @return Student
   */
  Student getStudentByNo(String stuNo);

  /**
   * 添加学生信息
   * @param student 学生信息
   */
  void insertStudent(Student student);

  /**
   * 更新学生信息
   * @param student 学生信息
   */
  void updateStudent(Student student);

  /**
   * 根据主键删除学生
   * @param stuId 学生id
   * @return true or false
   */
  boolean deleteStudent(Integer stuId);

  /**
   * 批量删除学生
   * @param studentIds 学生id集合，String形式，以逗号分割
   * @return true or false
   */
  boolean deleteMoreStudent(List<Integer> studentIds);
}
